home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / System / CADAR / Lengths / l-alignment2 next >
Lisp/Scheme  |  1998-10-22  |  1KB  |  52 lines

  1. l-alignment2 lengths &key (type 'rest) 
  2. (rep nil)
  3.  
  4. legal types: 'rest 'note 'rep
  5. legal rep t nil
  6.  
  7. this function is an extended version of 
  8. (excellent module) MRAC: l-alignment
  9. since I often like the zones to be in control over
  10. lengths here you can cut of lengths so that new length-lists
  11. will start exactly on new zones.
  12.  
  13.  
  14. (setq le '(1/8 1/4 1/4 1/1 1/4 1/16 1/16))
  15. (setq zo '(1/8 1/4 1/4 1/1 1/4 1/64))
  16.  
  17. (l-alignment2 le zo :type 'rest)
  18. ->(1/8 1/4 1/4 1/1 1/4 -1/64)
  19.  
  20. (setq zo '(1/8 1/4 1/4 1/1 1/4 1/16 1/16 1/1))
  21.  
  22. (l-alignment2 le zo)
  23. ->(1/8 1/4 1/4 1/1 1/4 1/16 1/16 -1/1)
  24.  
  25. (l-alignment2 le zo :type 'rest)
  26. ->(1/8 1/4 1/4 1/1 1/4 1/16 1/16 -1/1)
  27.  
  28. (l-alignment2 le zo :type 'note)
  29. ->(1/8 1/4 1/4 1/1 1/4 1/16 1/16 1/1)
  30.  
  31. (l-alignment2 le zo :type 'rep)
  32. ->(1/8 1/4 1/4 1/1 1/4 1/16 1/16 1/8 1/4 1/4 -3/8)
  33.  
  34.  
  35. In this new faster version 
  36. I added rep (repeat as a separate keyword) so that
  37. you can still choose between note and rest when using
  38. rep.
  39. It is still compatible with earlier version so you don't
  40. have to change anything.
  41.  
  42. (l-alignment2 le zo :type 'note :rep t)
  43. ->(1/8 1/4 1/4 1/1 1/4 1/16 1/16 1/8 1/4 1/4 3/8)
  44.  
  45.  
  46. (l-alignment2 le zo :type 'rest :rep t)
  47. ->(1/8 1/4 1/4 1/1 1/4 1/16 1/16 1/8 1/4 1/4 -3/8)
  48.  
  49. same as: 
  50. (l-alignment2 le zo :type 'rep)
  51.  
  52.